/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package DTD.Diccionario;

import java.util.ArrayList;

/**
 * Clase que maneja tres tipos de simbolos:
 * +, que indica que el elemento debe tener al menos una ocurrencia
 * ?, que indica que el elemento puede tener una o ninguna ocurrencia
 * *, que indica que el elemento puede tener ninguna o muchas ocurrencias
 * @author Administrador
 */
public class DiccionarioOcurrenciasElementos implements IDiccionario{
    private ArrayList<String> palabras; //lista de simbolos especiales
    private int tipo;//tipo de dicionario de simbolos

    /**
     * Constructor
     */
    public DiccionarioOcurrenciasElementos() {
        palabras = new ArrayList<String>();
        this.tipo = DiccionarioOcurrenciasElementos.SIMBOLO;
        cargar();
    }

    /**
    * Determina si la cadena recibida por parámetro es un simbolo especial
    * @param palabra String a validar
    * @return True si es un simbolo, false en caso contrario
    */
    public boolean existe(String palabra) {
        return palabras.contains(palabra);
    }

    /**
     * Carga todos los simbolos especiales
     */
    private void cargar() {
        palabras.add("+");
        palabras.add("?");
        palabras.add("*");
    }

   /**
     * Mètodo que devuelve el identificador correspondiente al diccionario de
     * simbolos
     * @return int que corresponde a simbolo
     */
    public int getTipoDiccionario() {
        return this.tipo;
    }

}
